Language Constructs for Safe Parallel Programming on Multi-Cores
نویسنده
چکیده
eects and checking are implemented in the compiler. emore speculative gradual eect checking remains to be implemented. We have also not yet completely formalized or proven the soundness of the gradual eect system. 5.5 Unlocking Eects Using eects for data race-free parallelism is conceptually very similar to using locks. Annotating a method with an eect clause eectively locks the data described by the eects during the execution of that method, preventing any other conicting method execution. ere are two major dierences, however, one favoring eects and one favoring locks. First, with an eect clause, all the necessary “locks” can be acquired by a single atomic operation, whereas acquiring several actual locks is done in sequence (non-atomic), which is slower and also may introduce deadlocks. Secondly, eects are held for an entire computation (a method typically), whereas locks can be released as soon as they are no longer needed; consequently locks may allow for more parallelism. To remedy this shortcomingwe introduce a yield command.A yield can be used inside a method body to inform the scheduler that an eect reported in the method’s head will not be caused by the remainder of that method. is allows
منابع مشابه
Concurrent Programming Constructs in Multi-Engine Prolog
We discuss the impact of the separation of logic engines (independent logic processing units) and multi-threading on the design of parallel programming constructs aware of the fundamental invariant of today’s typical computer architectures: the presence of a few independent cores. We advocate a combination of coroutining constructs with focus on expressiveness and a simplified, multithreading A...
متن کاملArchitecture Aware Assembly Like Parallel Constructs: Towards Power and Performance Efficient Heterogeneous Cores
Supercomputing clusters based on thousands of heterogeneous cores are gaining momentum in the multi-core era because of its potential to cater the needs of several classes of applications and also for its energy and compute efficiency. The Exa-scale computing demands the research thrust on programming models models to achieve exa-scale performance. This model should be capable of bridging the g...
متن کاملArchitecture aware parallel programming in Glasgow parallel Haskell (GPH)
General purpose computing architectures are evolving quickly to become manycore and hierarchical: i.e. a core can communicate more quickly locally than globally. To be effective on such architectures, programming models must be aware of the communications hierarchy. This thesis investigates a programming model that aims to share the responsibility of task placement, load balance, thread creatio...
متن کاملPerformance Analysis of GPU compared to Single-core and Multi-core CPU for Natural Language Applications
In Natural Language Processing (NLP) applications, the main time-consuming process is string matching due to the large size of lexicon. In string matching processes, data dependence is minimal and hence it is ideal for parallelization. A dedicated system with memory interleaving and parallel processing techniques for string matching can reduce this burden of host CPU, thereby making the system ...
متن کاملA High-level Language Features and Parallelism Support Comparison
This paper provides a performance and programmability comparison of high-level parallel programming support in Haskell, F# and Scala. Developing several parallel versions, we employ skeletonbased, semi-explicit and explicit approaches to parallelism. We focus on advanced language features for separating computational and coordination aspects of the code and tuning performance. We also assess th...
متن کاملStatic Timing Analysis of Parallel Systems Using Abstract Execution
The Power Wall has stopped the past trend of increasing processor throughput by increasing the clock frequency and the instruction level parallelism. Therefore, the current trend in computer hardware design is to expose explicit parallelism to the software level. This is most often done using multiple processing cores situated on a single processor chip. The cores usually share some resources o...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2016